unit LaboratorioDM;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, DB, FileUtil, LResources, Forms, Controls, Graphics,
  Dialogs, ZDataset, ZSqlUpdate, MainDM, QueryConditions, DataRecord;

type

  { TLaboratorioData }

  TLaboratorioData = class(TMainDataModule)
    LaboratorioDatasource: TDatasource;
    LaboratorioZQuery: TZQuery;
    LaboratorioZQuerybairro: TStringField;
    LaboratorioZQuerycep: TStringField;
    LaboratorioZQuerycnpj_laboratorio: TStringField;
    LaboratorioZQueryemail: TStringField;
    LaboratorioZQueryendereco: TStringField;
    LaboratorioZQueryid_municipio: TLongintField;
    LaboratorioZQueryid_tecnico: TLongintField;
    LaboratorioZQuerynome_laboratorio: TStringField;
    LaboratorioZQuerynome_municipio: TStringField;
    LaboratorioZQuerynome_tecnico: TStringField;
    LaboratorioZQuerypreco_amostra: TFloatField;
    LaboratorioZQuerytelefone: TStringField;
    LaboratorioZQueryuf: TStringField;
    LaboratorioZUpdate: TZUpdateSQL;
    /// Criação do Módulo de Dados
    procedure DataModuleCreate(Sender: TObject);
    /// Abre o DataSet (Neste módulo de dados, o DataSet fica sempre aberto)
    procedure OpenDataSet(); override;
    /// Fecha o DataSet (Neste módulo de dados, o DataSet fica sempre aberto)
    procedure CloseDataSet(); override;
    /// Realiza busca (Neste módulo de dados não há buscas)
    procedure Search(Condicoes: TQueryConditions; Tabela: string); override;
    /// Obtém o preço atual das amostras
    function GetPrecoAmostra(): real;
    /// Obtém o técnico atual do laboratorio
    function GetTecnicoAtual(): TDataRecord;
    function GetDataRecord: TDataRecord; override;
  end;

var
  LaboratorioData: TLaboratorioData;

implementation

uses ConnectionDM;

{ TLaboratorioData }

procedure TLaboratorioData.DataModuleCreate(Sender: TObject);
begin
  MainDataSet := LaboratorioZQuery;
  LaboratorioZQuery.Open();
end;

procedure TLaboratorioData.OpenDataSet;
begin
  // DataSet sempre aberto
end;

procedure TLaboratorioData.CloseDataSet;
begin
  // DataSet sempre aberto
end;

procedure TLaboratorioData.Search(Condicoes: TQueryConditions; Tabela: string);
begin
  // Sem buscas
end;

function TLaboratorioData.GetPrecoAmostra(): real;
begin
  // Retorna o valor do campo "preco_amostra" da tabela "laboratorio"
  Result := LaboratorioZQuery.FieldByName('preco_amostra').AsFloat;
end;

function TLaboratorioData.GetTecnicoAtual(): TDataRecord;
var
  D: TDataRecord;
begin
  D:=TDataRecord.Create();
  D.ReadFromDataSet(LaboratorioZQuery);
  GetTecnicoAtual:=D;
end;

function TLaboratorioData.GetDataRecord: TDataRecord;
var
  D: TDataRecord;
begin
  D:=TDataRecord.Create();
  D.ReadFromDataSet(LaboratorioZQuery);
  Result:=D;
end;

initialization
  {$I laboratoriodm.lrs}

end.


